package com.liming.cart.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liming.common.pojo.entity.cart.CartItem;

import java.util.List;

/**
 * @author liming
 * @date 2025/1/22
 */
public interface CartItemMircoService extends IService<CartItem> {

    /**
     * 减少购物车中商品数量
     *
     * @param id 购物车项id
     * @return 减少结果
     */
    Boolean reduceItemById(Long id);

    /**
     * 增加购物车中商品数量
     *
     * @param id 购物车项id
     * @return 增加结果
     */
    Boolean addItemById(Long id);

    /**
     * 增加购物车项的商品数量
     *
     * @param cartItem  购物车项
     * @param productId 商品id
     * @param quantity  商品数量
     * @return 增加结果
     */
    boolean addItemQuantity(CartItem cartItem, Long productId, Integer quantity);

    /**
     * 删除购物车项
     *
     * @param ids 购物车项id集合
     * @return 删除结果
     */
    Boolean removeItemsByIds(List<Long> ids);

    /**
     * 删除购物车项
     *
     * @param cartId
     * @param productIds 商品id集合
     * @return 删除结果
     */
    Boolean removeItemsByProductIds(Long cartId, List<Long> productIds);
}
